Skip to content

feat: CLI Runners with Command pattern and documentation#874

Merged
stephanj merged 4 commits intomasterfrom
ralph-wiggum
Feb 12, 2026
Merged

feat: CLI Runners with Command pattern and documentation#874
stephanj merged 4 commits intomasterfrom
ralph-wiggum

Conversation

@stephanj
Copy link
Copy Markdown
Collaborator

@stephanj stephanj commented Feb 12, 2026

Summary

  • CLI tool execution for spec tasks: Added support for executing spec tasks via external CLI tools (Claude Code, GitHub Copilot, OpenAI Codex, Google Gemini) as an alternative to the built-in LLM provider
  • Command pattern refactor: Extracted tool-specific behavior (command construction, prompt delivery, MCP config, task-completion handling) into dedicated CliCommand implementations per CLI type
  • CLI Runners documentation: New dedicated docs page covering setup, supported tools, configuration reference, and troubleshooting, plus cross-references from SDD and Agent Loop pages
  • Naming normalization: Standardized "Spec Driven" → "Spec-driven" across all documentation
CLI-Runners-Setup CLI-Runners-Selection

Test plan

  • ./gradlew build passes
  • All tests pass
  • Verify CLI Runner settings UI: Settings → Spec Driven Dev → CLI Runners
  • Test adding/editing/removing CLI tool configurations
  • Test "Test Connection" button with an installed CLI tool
  • Run a spec task with a CLI runner selected (e.g., Claude Code)
  • Verify Codex process is terminated when task marked Done
  • Verify docusaurus site builds and CLI Runners page renders correctly

🤖 Generated with Claude Code

stephanj and others added 4 commits February 12, 2026 13:36
…Gemini)

Adds support for executing spec tasks via external CLI tools instead of
the built-in LLM provider. CLI tools use Backlog MCP to manage task
status, with auto-generated MCP config passed via CLI flags.

Key changes:
- CliToolConfig model with per-tool-type defaults (path, args, MCP flag)
- CliTaskExecutorService runs CLI as external process, streams output to
  Run tool window console, handles exit codes and cancellation
- CliConsoleManager manages ConsoleView in IntelliJ Run tool window
- SpecTaskRunnerService dual execution paths (LLM vs CLI mode)
- Claude defaults: -p --dangerously-skip-permissions --model opus
  --allowedTools Backlog.md --mcp-config <auto-generated>
- CLI instruction prompt includes Backlog MCP workflow steps
- MCP config flag field disabled in UI with explanatory help text
- Settings dialog pre-fills defaults when adding new CLI tool entry
- Args parser strips shell-style quotes for ProcessBuilder compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move tool-specific logic (command construction, prompt delivery, MCP config
format, task-completion handling) out of CliToolConfig enum and
CliTaskExecutorService into dedicated CliCommand implementations per CLI type
(Claude, Copilot, Codex, Gemini, Custom). CliTaskExecutorService now delegates
to the active command, and SpecTaskRunnerService notifies the executor when a
task is marked Done so non-self-exiting tools (e.g. Codex) can be terminated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Consistent hyphenated form in blog posts, feature pages, homepage,
config metadata, and welcome JSON.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New dedicated page covering setup, supported tools, configuration reference,
and troubleshooting for CLI Runners. Add sidebar entry under LLM Providers,
cross-reference from SDD and Agent Loop pages, and include setup/selection
screenshots.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@stephanj stephanj merged commit 831e75e into master Feb 12, 2026
8 checks passed
@stephanj stephanj deleted the ralph-wiggum branch February 12, 2026 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant